using MLSharp.Classification;

namespace MLSharp.Evaluation
{
	/// <summary>
	/// Defines the interface for classes that process results and
	/// write them to some other medium, such as a CSV file or 
	/// chart.
	/// </summary>
	public interface IResultWriter
	{
		/// <summary>
		/// Writes the specified results.
		/// </summary>
		/// <param name="dataSet"></param>
		/// <param name="classificationResults"></param>
		void ProcessResults(IDataSet dataSet, ClassificationResult[] classificationResults);

		/// <summary>
		/// When called, the writer should initialize/re-initialize.
		/// This is provided so that a single result writer can be used
		/// multiple times.
		/// </summary>
		void Initialize();
	}
}